/*
 * KineticProblem.h
 *
 *  Created on: 18 Oct 2011
 *      Author: allan
 */

#ifndef KineticProblem_H_
#define KineticProblem_H_

// Eigen includes
#include <Eigen/Core>
using namespace Eigen;

// GeoReact includes
#include <Numerics/OdeSolver.h>

// GeoReact forward declarations
class KineticSolver;

class KineticProblem : public OdeProblem
{
public:
	KineticProblem(KineticSolver& kinetic_solver, double T, double P, const VectorXd& n);
	
	virtual void Function(double t, const VectorXd& ujnk, VectorXd& Rj_Rk);
	
public:
	/// The kinetic solver (as a reference)
	KineticSolver& kinetic_solver;
	
	/// The temperature (T) and pressure (P)
	double T, P;
	
	/// The composition of the species
	VectorXd n;
};

#endif /* KineticProblem_H_ */
